package com.mc.lp.service;
import java.util.List;

import org.springframework.dao.DataAccessException;

import com.mc.lp.database.entity.AcademicRecordEntity;
import com.mc.lp.database.exception.ConcurrentAccessException;
import com.mc.lp.shared.vo.AcademicRecordVO;
import com.mc.lp.shared.vo.IValueObject;
import com.mc.lp.shared.vo.SearchCriteriaVO;
import com.mc.lp.shared.vo.StudentRecordVO;
/*
 * @author aphanda
 * @date Sep 14, 2014
 * @time 2:02:33 AM
 */
/**
 * @author aphanda
 *
 */
public interface AcademicRecordService extends IService{
	public IValueObject saveAcademics(StudentRecordVO studentRecordVO)throws DataAccessException, ConcurrentAccessException;
	public IValueObject getAcademicsRecordsByEntityIdTermGrade(StudentRecordVO studentRecordVO);
	public IValueObject getAcademicsByEntityId(StudentRecordVO studentRecordVO);
	
	
	// User Screen Service methods
	public List<AcademicRecordVO> getAcademicsByEntityIdYear(Long entityId, int year, int limit);
	public List<AcademicRecordVO> getAcademicsByEntityIdGrade(Long entityId, int gradeId);
	
	public List<AcademicRecordVO> getAcademicsByEntityIdTerm(Long entityId, int year, int termId, int limit);
	public List<AcademicRecordEntity> getAllAcademicsByStudentEntity(Long studentEntity);
	
	public List<AcademicRecordVO> getAcademicsByGrades(Long studentEntity , List<Integer> gradeValueList);
	public List<AcademicRecordVO> getAcademicsBySearchCriteriaForAdvancedGraph(SearchCriteriaVO crit);

}
